package com.hb.trade.server.project.portal.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hb.core.pojo.parent.PageResult;
import com.hb.core.pojo.project.portal.dto.PortalNoticeDTO;
import com.hb.core.pojo.project.portal.entity.PortalNotice;

import java.util.List;

/**
 * <p>
 * 门户公告 服务类
 * </p>
 *
 * @author tian
 * @since 2022-05-25
 */
public interface PortalNoticeService extends IService<PortalNotice> {

    /**
     * 添加门户的附件
     *
     * @author tian
     * @date 2022-5-25 18:43
     * @param portalNoticeDTO
     * @return boolean
     */
    boolean savePortalNotice(PortalNoticeDTO portalNoticeDTO);

    /**
     * @Description: 门户公告查询
     *
     * @author yuezheng
     * @param portalNoticeDTO
     * @return org.fzzn.core.model.msg.Message<com.hb.core.pojo.parent.PageResult<com.hb.core.pojo.portal.entity.PortalNotice>>
     * @date 2022/5/26 13:43
     */
    PageResult<PortalNotice> pagePortalNoticeList(PortalNoticeDTO portalNoticeDTO);

    /**
     * @Description: 门户查询公告详情
     *
     * @author yuezheng
     * @param portalNoticeDTO
     * @return org.fzzn.core.model.msg.Message<com.hb.core.pojo.portal.dto.PortalNoticeDTO>
     * @date 2022/5/26 15:14
     */
    PortalNoticeDTO findNoticeById(PortalNoticeDTO portalNoticeDTO);

    /**
     * @Description: 查询公告列表
     * 门户查询相关公告
     * @author yuezheng
     * @param portalNoticeDTO
     * @return org.fzzn.core.model.msg.Message<java.util.List<com.hb.core.pojo.portal.entity.PortalNotice>>
     * @date 2022/5/26 16:04
     */
    List<PortalNotice> listPortalNotice(PortalNoticeDTO portalNoticeDTO);


    /**
     * 查询公告推送信息
     *
     * @author tian
     * @date 2022-5-26 16:16
     * @param portalNoticeDTO
     * @return org.fzzn.core.model.msg.Message<java.util.List<com.hb.core.pojo.portal.entity.PortalNotice>>
     */
    List<PortalNoticeDTO> listPortalNoticeByPushStatus(PortalNoticeDTO portalNoticeDTO);

    /**
     * 标记推送状态为已推送
     *
     * @author tian
     * @date 2022-5-26 16:20
     * @param ids 待修改推送状态的ids
     * @return org.fzzn.core.model.msg.Message<java.util.List<com.hb.core.pojo.portal.entity.PortalNotice>>
     */
    Boolean updatePushStatusByIds(List<Long> ids);

    /**
     * 管理后台 - 分页查询公告
     *
     * @param portalNoticeDTO
     * @return
     */
    PageResult<PortalNoticeDTO> pagePortalNoticeList4Manager(PortalNoticeDTO portalNoticeDTO);

    /**
     * 管理后台 - 删除公告
     *
     * @param portalNoticeDTO
     */
    void delPortalNotice(PortalNoticeDTO portalNoticeDTO);

    /**
     * 管理后台 - 保存公告
     *
     * @param portalNoticeDTO
     */
    void savePortalNotice4Manager(PortalNoticeDTO portalNoticeDTO);
}
